package com.dmbjz.webdemo.controller;


import com.dmbjz.webdemo.entity.Apple;
import com.dmbjz.webdemo.entity.Person;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

@RestController
@Slf4j
public class HelloController {


    /**
     * Spring5.3 之后默认使用新版 PathPatternParser 进行路径解析，以前使用的是 AntPathMatcher
     * <p>
     * PathPatternParser  "**" 多段匹配的支持仅允许在模式末尾使用
     * AntPathMatcher 允许路径中间使用 "**"
     */
    @GetMapping("/a*/b?/{p1:[a-f]+}")
    public String hello(HttpServletRequest request, @PathVariable("p1") String path) {

        log.info("路径变量p1： {}", path);

        //获取请求路径
        String uri = request.getRequestURI();
        return uri;

    }


    /**
     * 根据请求协议的不同，返回 json、xml
     */
    @PostMapping("getPersion")
    public Person getPersion() {

        Person person = new Person();
        person.setId(1L);
        person.setUserName("dmbjz");
        person.setEmail("dmbjz@gmail.com");
        person.setAge(18);
        return person;

    }


    /**
     * 根据请求协议的不同，返回 json、xml
     */
    @PostMapping("getApple")
    public Apple getApple() {

        Apple apple = new Apple();
        apple.setId("100");
        apple.setName("dmbjz");
        return apple;

    }


}
